/*
 * MapElementFactory.h
 *
 *  Created on: 31/10/2009
 *      Author: marcos
 */

#ifndef MAPELEMENTFACTORY_H_
#define MAPELEMENTFACTORY_H_

#include "map/Map.h"
#include "parser/ParsedData.h"
#include "util/exceptions/ElementNotFoundException.h"
#include "core/exceptions/DuplicateElementException.h"

class MapElementFactory {
public:
	MapElementFactory();
	virtual ~MapElementFactory();

	void createRoad(Map* map, parser::ParsedData* data)
		throw (DuplicateElementException, ElementNotFoundException);

	void createLocation(Map* map, parser::ParsedData* data)
		throw (DuplicateElementException);

	void createIntersection(Map* map, parser::ParsedData* data)
		throw (DuplicateElementException, ElementNotFoundException);
};

#endif /* MAPELEMENTFACTORY_H_ */
